package base

type Message struct {
	Content string `json:"content"`
	Role    string `json:"role"` // system/user/assistant
}

type Body struct {
	Messages         []Message         `json:"messages,omitempty"`         // 消息，必须，无默认值
	Model            string            `json:"model,omitempty"`            // 模型
	Prompt           string            `json:"prompt,omitempty"`           // 提示词,
	FrequencyPenalty int               `json:"frequencyPenalty,omitempty"` // 控制重复内容的惩罚力度。值越大，模型越倾向于生成不重复的内容。取值范围通常在-2.0到2.0之间，默认值为0
	MaxTokens        int               `json:"maxTokens,omitempty"`        // 限制生成文本的最大token数量。一个token大约相当于一个英文单词或2-3个中文字符。默认最大输出长度为4096，最大可设置为16384
	PresencePenalty  int               `json:"presencePenalty,omitempty"`  // 控制新话题的引入程度。值越大，模型越倾向于引入新主题。取值范围通常在-2.0到2.0之间，默认值为0
	ResponseFormat   map[string]string `json:"responseFormat,omitempty"`   // 指定输出格式。例如，可以设置为{"type": "text"}返回纯文本，或{"type": "json"}返回JSON格式
	Stream           bool              `json:"stream,omitempty"`           // 是否启用流式响应。如果设置为true，API将逐块返回生成内容，适用于需要实时显示结果的场景
	Temperature      int               `json:"temperature,omitempty"`      // 控制生成文本的随机性。值越低（接近0），输出越确定和保守；值越高（接近1或2），输出越随机和多样化
	TopP             int               `json:"topP,omitempty"`             // 通过动态阈值控制候选词范围。取值范围0到1，例如0.9表示只考虑累积概率达到90%的词
	ToolChoice       string            `json:"toolChoice,omitempty"`       // 控制模型调用工具的行为，例如指定要使用的工具名称
	Logprobs         bool              `json:"logprobs,omitempty"`         // 是否返回输出token的对数概率
}
